#ifndef THREAD_POOL_H
#define THREAD_POOL_H

#include <list>
#include <memory>

class StandardThread;

class ThreadPool
{
public:
    explicit ThreadPool(std::shared_ptr<TaskPool> taskPool, const std::uint32_t threads = std::thread::hardware_concurrency());
    ~ThreadPool();

private:
    std::shared_ptr<TaskPool> m_taskPool;
    std::list<std::shared_ptr<StandardThread>> m_threadPool;
};

#endif // THREAD_POOL_H


